<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 多个实例对象,每个对象中的方法独立占用一片内存空间,比较浪费.
        //   解决:构造函数上的属性(静态成员),实例成员(真实的例子)无法访问;
        //     但是,构造函数上有一个特别的属性(prototype),里面的值,可以让所有实例对象共享


        // 此处thi代指的就是实例对象(真实的例子)
        function Star(name, age) {
            this.name = name;
            this.age = age;

            // 绑定方法
            this.sing = function (song) {
                console.log('联系' + this.name);
                console.log(this.name + '唱' + song);
                console.log('欢送......');
            }
        }
        // 创建实例(创建真实的例子)
        const s1 = new Star('刘德华', 58);
        const s2 = new Star('张学友', 58);
        // 复杂数据类型,==比较的是内存地址
        console.log([] == []);
        // 两个明星唱歌的方法各站一片内存空间
        console.log(s1.sing == s2.sing);

        // 构造函数上有一个特别的属性(prototype),里面的值,可以让所有实例对象共享
        Star.prototype.gender = '男'
        Star.prototype.dance = function(){console.log('跳舞')};
        console.log(s1.gender);
        console.log(s2.gender);
        console.log(s1.dance == s2.dance);

    </script>
</body>

</html>